using System;
using System.Drawing;
using System.Windows.Forms;
using needle.UI.Controls.Flat.Windows.Forms.Collections;

namespace needle.UI.Controls.Flat.Windows.Forms
{
	public interface IFlashabledControl
	{
		void FlashControl();
	}

	public interface IHasStyleControl
	{
		StyleGuide GetStyle();
		void SetStyle(StyleGuide style);
		bool GetParentStyle();
	}

	public interface IHookedControl
	{
		object HookControl();
	}

	public interface IHookedPopupControl
	{
		object HookPopupControl();
	}
}

namespace needle.UI.Controls.Flat.Windows.Docking
{
	public interface IHotZoneSource
	{
		void AddHotZones(Redocker redock, HotZoneCollection collection);
	}

	public interface IZoneMaximizeWindow
	{
		needle.UI.Controls.Flat.Windows.Forms.Direction Direction { get; }
		bool IsMaximizeAvailable();
		bool IsWindowMaximized(Window w);
		void MaximizeWindow(Window w);
		void RestoreWindow();
		event EventHandler RefreshMaximize;
	}
}